#pragma once
#include "crypto/keys/FAQPublicKey.h"
#include "crypto/keys/FAQPrivateKey.h"
#include "crypto/keys/FAQKeyPair.h"

namespace yzrilyzr_crypto{
	EBCLASS(FAQKeyPairGenerator){
	public:
	virtual FAQPublicKey & getPublicKey()const=0;
	virtual FAQPrivateKey & getPrivateKey()const=0;
	virtual std::shared_ptr<FAQKeyPair> generate(u_index len)=0;
	virtual std::shared_ptr<FAQKeyPairGenerator> newInstance()const=0;
	};
}